|
Экспериментирование проводилась с использованием Wi-Fi модуля ESP-01 и точки доступа DIR-320NRU.
[Одиночное подключение (ESP8266 в качестве клиента TCP)]
1. Настройка режима WiFi. Переведите ESP-01 в режим станции.
В этой команде 3 означает softAP и режим станции. Ответ:
Примечание: настроенный режим
сохраняется в энергонезависимой памяти. Т. е. если сейчас выключить и
снова включить питание модуля ESP, то модуль автоматически перейдет в
режим станции. Чтобы узнать текущий режим модуля, введите команду
"AT+CWMODE?".
2. Перезагрузите модуль, чтобы настройка вошла в действие:
Ответ:
3. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
AT+CWJAP="ssid","password"
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
Примечание: SSID и пароль обязательно
должны быть заключены в двойные кавычки. SSID и пароль команды также
запоминаются в энергонезависимой памяти, и после выключения и включения
питания произойдет автоматическое подключение к точке доступа и
получение IP-адреса.
4. Как узнать IP-адрес, который получил модуль от точки доступа.
Ответ:
Устройство ESP-01 получило IP от роутера. Можно протестировать командой ping:

5. С помощью специальной сетевой утилиты на
компьютере создайте сервер. Это может быть программа NetAssist.exe [2].
Например, создайте сервер на TCP-порт 8080 с IP адресом
192.168.0.53.

После этого дайте команду ESP подключиться к этому серверу в качестве клиента:
AT+CIPSTART="TCP","192.168.0.56",8080
В этой команде через запятую протокол, IP сервера, номер порта. Ответ:
6. Передача данных.
В этой команде задана длина передаваемых данных в байтах (в этом
примере 4 байта). Модуль ESP выдаст приглашение >. Введите 4 любых
символа, Enter нажимать не надо (в этом примере введены буквы QWER).
Ответ:
Примечание: если количество
отправляемых байт будет больше, чем заданный размер (в этом примере 4),
то после лишние байты переданы не будут. Если нужно снова передать
данные, то команду AT+CIPSEND=N нужно ввести повторно.
В окне программы NetAssist.exe будут отображаться принятые данные,
которые передал модуль ESP-01 (в виде HEX-кодов ASCII, потому что стоит
галочка Receive As HEX).

7. Прием данных (передача данных от утилиты NetAssist.exe).
Введите текст для передачи (например "http://microsin.net"), и
нажмите кнопку Send (поле ввода и кнопка находятся в нижней части окна
программы NetAssist.exe).

Ответ:
+IPD,19:http://microsin.net
OK
[Прозрачная передача данных (Transparent transmission)]
1. Установка режима WiFi (режим станции, т. е. сетевого клиента, который может подключиться к точке доступа).
Ответ:
2. Подключение к точке доступа Wi-Fi:
AT+CWJAP="ssid","password"
Ответ:
3. Создайте TCP-сервер на компьютере с помощью
утилиты NetAssist.exe. В нашем примере это сервер на IP-адресе
192.168.0.56, порт 8080. Выдайте для ESP AT-команду для подключения к
серверу:
AT+CIPSTART="TCP","192.168.0.56",8080
Ответ:
4. Пока что мы повторили все предыдущие шаги из
предыдущего раздела "Одиночное подключение (ESP8266 в качестве клиента
TCP)". Теперь будут отличия: дадим команду разрешить прозрачный режим,
когда все передаваемые и принимаемые данные будут прозрачно появляться
на сигналах RS-232 TTL TXD и RXD.
Ответ:
5. Передача данных. Чтобы начать передачу, введите команду:
Ответ:
Теперь все данные, которые поступают на ножке RXD модуля ESP-01,
будут прозрачно передаваться по радио на точку доступа и далее на
TCP-сервер. И наоборот, все данные, которые передаст TCP-сервер,
появятся на ножке TXD модуля ESP-01.
6. Как выйти из прозрачного режима и остановить
передачу. Тут не все однозначно. На некоторых модулях для остановки
передачи нужно передать магическую комбинацию символов "+++". Но на моем
модуле ESP-01 с прошивкой ai-thinker.com Version:0.9.2.4 это
сделать не получилось. Поэтому для выхода из прозрачного режима нужно
выполнить аппаратный сброс модуля (подать короткий импульс на сигнал
EXT_RSTB, это ножка 6 коннектора модуля ESP-01).
Как вариант можно остановить сервер TCP. В нашем примере для этого
надо нажать кнопку Disconnect в программе NetAssist.exe, которая
обеспечивала работу сервера. Модуль ESP-01 выдаст сообщение об
отключении от сервера:
[ESP8288 в качестве TCP-сервера]
1. Настройка режима Wi-Fi. Переведите ESP-01 в режим станции.
Ответ:
2. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
AT+CWJAP="ssid","password"
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
3. Разрешите множественные подключения к модулю ESP-01 (иначе сервер не запустится).
Ответ:
4. Запуск сервера на модуле ESP-01.
По умолчанию сервер заработает на TCP-порту 333. Ответ модуля ESP-01, сигнализирующий о нормальном запуске сервера:
5. Теперь можно протестировать работу TCP-сервера. В
качестве сетевого клиента можно использовать команду telnet, указав в
командной строке IP-адрес и порт сервера:
Модуль ESP-01 просигнализирует о подключении к серверу сообщением:
Примечание: ESP8266EX работает как
сервер с использованием механизма таймаута. Это означает, что когда
соединение установлено, и за определенный период времени (таймаут) не
передавалось никаких данных через это соединение, то сервер ESP-01
отключит его, и выдаст при этом сообщение:
Поэтому, если Вы хотите, чтобы
соединение сохранялось, то обеспечьте повторение передач пакетов от
клиента как минимум каждые 5 секунд.
6. Прием данных TCP-сервером. В качестве теста можно
передавать данные от команды telnet, если нажимать клавиши в её окне.
Вот ответ сервера ESP-01, сигнализирующий поступление данных (в окне
telnet были последовательно нажаты друг за другом клавиши q, w, e, r, t,
y).
+IPD,0,1:q
OK
+IPD,0,1:w
OK
+IPD,0,1:e
OK
+IPD,0,1:r
OK
+IPD,0,1:t
OK
+IPD,0,1:y
OK
Примечание: после +IPD через запятую
идет 0, означающий номер сетевого соединения, дальше через запятую идет
количество принятых байт 1, и дальше через двоеточие идет принятый байт в
символьном виде (т. е. его код отображается как символ ASCII).
7. Передача данных TCP-сервером.
В этой команде задана длина передаваемых данных в байтах (в этом
примере 4 байта). Модуль ESP-01 выдаст приглашение >. Введите 4 любых
символа, Enter нажимать не надо (в этом примере введены буквы QWER).
Ответ:
[Передача пакетов UDP]
1. Настройка режима Wi-Fi. Переведите ESP-01 в режим станции.
Ответ:
2. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
AT+CWJAP="ssid","password"
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
3. Узнайте IP-адрес, который получил модуль от точки доступа.
Ответ:
4. В нашем сценарии компьютер PC и модуль ESP-01
подключен к одному и тому же роутеру DIR-320. Запустите утилиту
NetAssist.exe, в выпадающем списке Settings выберите UDP и нажмите
кнопку Connect. В поле Local Host IP будет отображен IP компьютера, куда
будет подключаться модуль ESP-01.
5. Разрешите множественные соединения.
Ответ:
6. Создайте соединение UDP. Для соединения нужно
указать идентификатор, в нашем примере идентификатор id соединения будет
4. Идентификатор потом понадобится для работы с соединением - для
передачи данных и для закрытия соединения.
AT+CIPSTART=4,"UDP","192.168.0.56",8080,1112,0
Ответ:
В этом примере "192.168.0.56",8080 это IP и порт удаленной точки
подключения (программа NetAssist.exe на компьютере), 1112 это номер
локального порта модуля ESP-01 (если это число опустить, то номер порта
ESP-01 сам выберет случайным образом). Завершающий 0 означает, что
параметры удаленного участника обмена не поменяются. Для нашего примера и
случая, если другой компьютер также создаст соединение UDP и отправит
данные к ESP-01 на порт 1112, то ESP-01 сможет принять эти данные, но
когда ESP-01 отправит данные командой "AT+CIPSEND=4,n", то он
отправит их на первый компьютер. Если этот последний параметр будет не
0, то данные будут посланы новому компьютеру.
7. Отправка данных от ESP-01 к компьютеру.
В этом примере указано передать 5 байт на соединение с
идентификатором 4. В ответ на эту команду модуль выдаст приглашение
>. Введите 5 любых символов, Enter нажимать не надо (в этом примере
введены буквы asdfg).
Ответ:
В окне NetAssist.exe принятые данные введенных символов asdfg отобразятся как HEX-коды (61 73 64 66 67).
8. Прием данных модулем ESP-01 от компьютера (передача данных от утилиты NetAssist.exe).
Введите текст для передачи (например "http://microsin.net"), и
нажмите кнопку Send (поле ввода и кнопка находятся в нижней части окна
программы NetAssist.exe).
Ответ:
+IPD,4,19:http://microsin.net
OK
Обратите внимание, что после +IPD теперь стоит не только количество принятых байт 19, но и еще идентификатор соединения 4.

9. Удаление соединения 4.
Ответ:
[Ссылки]
1. at_example_0020000903 site:github.com. 2. NetAssist.exe site:securitycameranet.com. |
Комментарии
RSS лента комментариев этой записи